package com.dimples.dd.mybatis.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author zhongyj <1126834403@qq.com><br/>
 * @date 2024/10/25
 */
@Getter
@AllArgsConstructor
public enum DbDriverEnum {

    /**
     * MySQL 数据库
     */
    MYSQL("1", "com.mysql.jdbc.Driver"),
    /**
     * MySQL5.7+ 数据库
     */
    MYSQL_("4", "com.mysql.cj.jdbc.Driver"),
    /**
     * Oracle
     */
    ORACLE("2", "oracle.jdbc.OracleDriver"),
    /**
     * SQLServer 数据库
     */
    SQL_SERVER("3", "com.microsoft.sqlserver.jdbc.SQLServerDriver"),
    /**
     * MariaDB 数据库
     */
    MARIADB("5", "org.mariadb.jdbc.Driver"),
    /**
     * PostgreSQL 数据库
     */
    POSTGRESQL("6", "org.postgresql.Driver"),
    /**
     * 达梦 数据库
     */
    DM("7", "dm.jdbc.driver.DmDriver"),
    /**
     * 人大金仓 数据库
     */
    KINGBASE("8", "com.kingbase8.Driver"),
    /**
     * 神通 数据库
     */
    OSCAR("9", "com.oscar.Driver"),
    /**
     * SQLite 数据库
     */
    SQL_LITE("10", "org.sqlite.JDBC"),
    /**
     * DB2 数据库
     */
    DB2("11", "com.ibm.db2.jcc.DB2Driver"),
    /**
     * Hsqldb 数据库
     */
    H_SQL("12", "org.hsqldb.jdbc.JDBCDriver"),
    /**
     * Derby 数据库
     */
    DERBY("13", "org.apache.derby.jdbc.ClientDriver"),
    /**
     * H2 数据库
     */
    H2("14", "org.h2.Driver"),
    /**
     * 其他数据库
     */
    OTHER("15", ""),

    ;

    /**
     * MyBatis Plus 类型
     */
    private final String value;
    /**
     * 数据库产品名
     */
    private final String label;

}
